perm filename PRTEST[8,ALS] blob
sn#046196 filedate 1973-05-31 generic text, type T, neo UTF8
00100 PROCEDURE TEST;
00200 INTEGER H1,H2,H3,H4,I,J,K,L,M;
00250 INTEGER FOUND,CONFRM,MAYBE,EXCESS,MISS;
00300 STRING LAB;
00400 INTEGER ARRAY LEVH1,LEVH2,LEVH3,LEVH4,SEGH1,SEGH2,SEGH3,SEGH4[0:CNTSIZ];
00405
00410 PRELOAD_WITH
00420 CVSIX("STOP"),CVSIX("VOICED"),CVSIX("FRIC"),CVSIX("VOIFRI"),CVSIX("VS"),0;
00430 INTEGER ARRAY FEAT1[0:7];
00435
00440 PRELOAD_WITH
00450 CVSIX("SCHWA"),CVSIX("NASAL"),CVSIX("GLIDE"),CVSIX("VOWEL"),0;
00460 INTEGER ARRAY FEAT2[0:7]
00465
00470 PRELOAD_WITH
00480 CVSIX("S/T"),CVSIX("SH/K"),CVSIX("F/P"),0;
00490 INTTEGER ARRAY FEAT3[0:7];
00493
00495 PRELOAD_WITH
00497 CVSIX("FRONT"),CVSIX("MID"),CVSIX("BACK"),0;
00498 INTEGER ARRAY FEAT4[0:7];
00500
00600 BEGIN
00605 H1←H2←H3←H4←0;
00610 FOR I←21 STEP 1 UNTIL 127 DO BEGIN
00620 IF LFILE[I]=0 THEN DONE;
00630 K←LDB(POINT(12,LFILE[I],11));
00640 FOR J←0 STEP 1 UNTIL 63 DO IF K=PHLIST[J] THEN DONE;
00650 HPOINT←POINT(1,HLIST[J],-1);
00660 FOR L←0 STEP 1 UNTIL 35 DO IF ILDB(HPOINT)=1 THEN BEGIN
00670 LAB←CVXSTR(FLIST[L];
00680 IF EQU(LAB,"VOICED")∨EQU(LAB,"FRIC ")∨EQU(LAB,"VOIFRI")
00690 ∨EQU(LAB,"VS ")∨EQU(LAB,"STOP ") THEN BEGIN
00700 LEVH1[H1]←FLIST[L]; SEGH1[H1]←LFILE[I];H1←H1+1; END ELSE IF
00710 EQU(LAB,"SCHWA ")∨EQU(LAB,"NASAL ")∨EQU(LAB,"GLIDE ")∨EQU(LAB,"VOWEL ")
00720 THEN BEGIN LEVH2[H2]←FLIST[L]; SEGH2[H2]←LFILE[I]; H2←H2+1; END ELSE IF
00730 EQU(LAB,"S/T ")∨EQU(LAB,"SH/K ")∨EQU(LAB,"F/P ") THEN
00740 BEGIN LEVH3[H3]←FLIST[L]; SEGH3[H3]←LFILE[I], H3←H3+1; END ELSE
00750 IF EQU(LAB,"FRONT)∨EQU(LAB,"MID")∨EQU(LAB,"BACK") THEN
00760 BEGIN LEVH4[H4]←FLIST[L]; SEGH4[H4]←LFILE[I]; H4←H4+1; END;
00770 END;
00780
00790 LEVH1[H1]←LEVH2[H2]←LEVH3[H3]←LEVH4[H4]←0;
00800
00900 J←K←0; IF LEVH1[J]=CVSIX("STOP") THEN J←J+1;
00910 IF LEV1[K]=CVSIX("STOP") THEN K←K+1;
00920
00930 OUT(CHAN6,"Features"&TB&"Found"&TB&"Confrmd"&tb&"Maybe"&TB"&"Excess"&TB&
00940 "Missed"&CRLF);
01000 FOR I=0 STEP 1 UNTIL 7 DO BEGIN
01005 FOUND←CONFRM←MAYBE←EXCESS←MISSED←0;
01010 WHILE J<CNTSIZ DO BEGIN IF LEVH1[J]=0 THEN DONE; IF LEVH1[J]=FEAT1[I] THEN DONE; J←J+1; END;
01020 WHILE K<CNTSIZ DO BEGIN IF LEV2[K]=0 THEN DONE; IF LEV2[K]=FEAT1[I] THEN DONE; K←K+1; END;
01030
01040 IF LDB(POINT(12,SEGH1[J],35))+LDB(POINT(12,SEGH1[J],23))<
01050 LDB(POINT(12,SEG1[K],17)) THEN BEGIN MISS[I]←MISS[I]+1; J←J+1; END ELSE
01060 IF LDB(POINT(12,SEG1[K],17))+LDB(POINT(12,SEG1[K],35))<
01070 LDB(POINT(12,SEGH1[J] THEN
01080 IF LDB(POINT(12,SEGH1[J-1],23))+LDB(POINT(12,SEGH1[J-1],35))
01090 <LDB(POINT(12,SEG1[K],17)) THEN MAYBE[I]←MAYBE[I]+1 ELSE
01100 EXCESS←EXCESS+1; ; K←K+1; END ELSE
01110 BEGIN CONFRM[I]←CONFRM[I]+1; I←I+1; J←J+1; END;
01120 FOUND←CONFRM+MAYBE+EXCESS;
01130 OUT(CHAN6,CVXSTR(FEAT1[I]&TB&CVS(FOUND)&TB&CVS(CONFRM)&TB&CVS(MAYBE)&TB&
01140 CVS(EXCESS)&TB&CVS(MISS)&CRLF);
01150 END; OUT(CHAN6,CRLF);
01157
02000 FOR I=0 STEP 1 UNTIL 7 DO BEGIN
02004 J←K←0; FOUND←CONFRM←MAYBE←EXCESS←MISSED←0;
02010 WHILE J<CNTSIZ DO BEGIN IF LEVH2[J]=0 THEN DONE; IF LEVH2[J]=FEAT2[I] THEN DONE; J←J+1; END;
02020 WHILE K<CNTSIZ DO BEGIN IF LEV2[K]=0 THEN DONE; IF LEV2[K]=FEAT2[I] THEN DONE; K←K+1; END;
02030
02040 IF LDB(POINT(12,SEGH2[J],35))+LDB(POINT(12,SEGH2[J],23))<
02050 LDB(POINT(12,SEG2[K],17)) THEN BEGIN MISS[I]←MISS[I]+1; J←J+1; END ELSE
02060 IF LDB(POINT(12,SEG2[K],17))+LDB(POINT(12,SEG2[K],35))<
02070 LDB(POINT(12,SEGH2[J] THEN
02080 IF LDB(POINT(12,SEGH2[J-1],23))+LDB(POINT(12,SEGH2[J-1],35))
02090 <LDB(POINT(12,SEG2[K],17)) THEN MAYBE[I]←MAYBE[I]+1 ELSE
02100 EXCESS←EXCESS+1; ; K←K+1; END ELSE
02110 BEGIN CONFRM[I]←CONFRM[I]+1; I←I+1; J←J+1; END;
02120 FOUND←CONFRM+MAYBE+EXCESS;
02130 OUT(CHAN6,CVXSTR(FEAT2[I]&TB&CVS(FOUND)&TB&CVS(CONFRM)&TB&CVS(MAYBE)&TB&
02140 CVS(EXCESS)&TB&CVS(MISS)&CRLF);
02150 END;
02160
03000 FOR I=0 STEP 1 UNTIL 7 DO BEGIN
03002 J←K←0; FOUND←CONFRM←MAYBE←EXCESS←MISSED←0;
03010 WHILE J<CNTSIZ DO BEGIN IF LEVH3[J]=0 THEN DONE; IF LEVH3[J]=FEAT3[I] THEN DONE; J←J+1; END;
03020 WHILE K<CNTSIZ DO BEGIN IF LEV3[K]=0 THEN DONE; IF LEV3[K]=FEAT3[I] THEN DONE; K←K+1; END;
03030
03040 IF LDB(POINT(12,SEGH3[J],35))+LDB(POINT(12,SEGH3[J],23))<
03050 LDB(POINT(12,SEG3[K],17)) THEN BEGIN MISS[I]←MISS[I]+1; J←J+1; END ELSE
03060 IF LDB(POINT(12,SEG3[K],17))+LDB(POINT(12,SEG3[K],35))<
03070 LDB(POINT(12,SEGH3[J] THEN
03080 IF LDB(POINT(12,SEGH3[J-1],23))+LDB(POINT(12,SEGH3[J-1],35))
03090 <LDB(POINT(12,SEG3[K],17)) THEN MAYBE[I]←MAYBE[I]+1 ELSE
03100 EXCESS←EXCESS+1; ; K←K+1; END ELSE
03110 BEGIN CONFRM[I]←CONFRM[I]+1; I←I+1; J←J+1; END;
03120 FOUND←CONFRM+MAYBE+EXCESS;
03130 OUT(CHAN6,CVXSTR(FEAT3[I]&TB&CVS(FOUND)&TB&CVS(CONFRM)&TB&CVS(MAYBE)&TB&
03140 CVS(EXCESS)&TB&CVS(MISS)&CRLF);
03150 END;
03160
04000 FOR I=0 STEP 1 UNTIL 7 DO BEGIN
04003 J←K←0; FOUND←CONFRM←MAYBE←EXCESS←MISSED←0;
04010 WHILE J<CNTSIZ DO BEGIN IF LEVH4[J]=0 THEN DONE; IF LEVH4[J]=FEAT4[I] THEN DONE; J←J+1; END;
04020 WHILE K<CNTSIZ DO BEGIN IF LEV4[K]=0 THEN DONE; IF LEV4[K]=FEAT4[I] THEN DONE; K←K+1; END;
04030
04040 IF LDB(POINT(12,SEGH4[J],35))+LDB(POINT(12,SEGH4[J],23))<
04050 LDB(POINT(12,SEG4[K],17)) THEN BEGIN MISS[I]←MISS[I]+1; J←J+1; END ELSE
04060 IF LDB(POINT(12,SEG4[K],17))+LDB(POINT(12,SEG4[K],35))<
04070 LDB(POINT(12,SEGH4[J] THEN
04080 IF LDB(POINT(12,SEGH4[J-1],23))+LDB(POINT(12,SEGH4[J-1],35))
04090 <LDB(POINT(12,SEG4[K],17)) THEN MAYBE[I]←MAYBE[I]+1 ELSE
04100 EXCESS←EXCESS+1; ; K←K+1; END ELSE
04110 BEGIN CONFRM[I]←CONFRM[I]+1; I←I+1; J←J+1; END;
04120 FOUND←CONFRM+MAYBE+EXCESS;
04130 OUT(CHAN6,CVXSTR(FEAT4[I]&TB&CVS(FOUND)&TB&CVS(CONFRM)&TB&CVS(MAYBE)&TB&
04140 CVS(EXCESS)&TB&CVS(MISS)&CRLF);
04150 END;
04160